package com.tyk.bookstore.front.logistics.model.vo;


import com.tyk.bookstore.front.logistics.model.enume.WaybillState;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author tyk
 * @description 运单
 */
@Data
public class WaybillVo {

    @Schema(description = "ID")
    private Long id;

    @Schema(description = "物流单号")
    private String trackingNo;

    @Schema(description = "会员ID")
    private Long memberId;

    @Schema(description = "订单ID")
    private Long orderId;

    @Schema(description = "快递公司名称")
    private String expressCompanyName;

    @Schema(description = "状态[0已下单,1已接单,2已发货,3已揽件,4运输中,5派件中,6待签收,7已签收]")
    private WaybillState state;

    @Schema(description = "寄件人所在区域行政区划代码")
    private Long senderAreaCode;

    @Schema(description = "寄件人所在区域行政区划")
    private String senderAreaFullName;

    @Schema(description = "寄件人姓名")
    private String senderName;

    @Schema(description = "寄件人地址")
    private String senderAddress;

    @Schema(description = "收件人姓名")
    private String cneeName;

    @Schema(description = "收件人电话")
    private String cneePhone;

    @Schema(description = "收件人所在区域")
    private Long cneeAreaCode;

    @Schema(description = "收件人所在区域")
    private String cneeAreaFullName;

    @Schema(description = "收件人地址")
    private String cneeAddress;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "下单时间")
    private LocalDateTime orderedTime;

    @Schema(description = "仓库ID")
    private Long warehouseId;

    @Schema(description = "仓库名称")
    private String warehouseName;

    @Schema(description = "仓库接单时间")
    private LocalDateTime warehouseReceivedTime;

    @Schema(description = "仓库发货时间")
    private LocalDateTime deliveredTime;

    @Schema(description = "快递公司揽件时间")
    private LocalDateTime pickedTime;

    @Schema(description = "运输时间")
    private LocalDateTime transportingTime;

    @Schema(description = "派件时间")
    private LocalDateTime dispatchingTime;

    @Schema(description = "待签收时间")
    private LocalDateTime waitPackTime;

    @Schema(description = "签收时间")
    private LocalDateTime signedTime;
}
